perm filename GLOSSA.3[FTL,LSP] blob sn#827960 filedate 1986-11-06 generic text, type T, neo UTF8
\input macros
\def\bookline{\CLOS\  Specification}
\def\chapline{Glossary}

\beginChapter 4.{Common Lisp Object System Specification}%
{Glossary}{Glossary}
\endTitlePage

\beginSection{Introduction}

This section defines the terminology used in this document.

\endSection%{Introduction}

\beginSection{Glossary}

{\bit Accessor function\/}: 

A generic function that enables you to read the value of a slot.  {\bf
setf} may be used with an accessor function to write the value of the
slot.   {\bf defclass} has an option for automatically generating
accessor functions for slots.

{\bit Built-in class\/}: 

A built-in class corresponds to one of the predefined Common Lisp type
specifiers; for example {\bf array} is a built-in class for objects of
type {\bf array}.  The metaclass of an array is {\bf built-in-class}.
You cannot define new built-in classes, nor use them in the definition
of a new class.

{\bit Class\/}:     

An object that describes the structure and behavior of a set of objects.
All Lisp objects have a class, and can be queried for the class by using
the {\bf class-of} function.

{\bit Classical method\/}:

Method selection is based on the class of the first argument to the
generic function (that is, on the class of a single object).

{\bit Components\/}:

The components of a class include:  the class itself, the super-classes
of the class, the super-classes of the super-classes of the class, and
so on.

{\bit Default method\/}:

A default method does not specify any type for discrimination purposes,
or specifies the type as {\bf t}.  A default method is selected when no
more specific method for the generic function is defined.

{\bit Dispatching\/}:

The process of selecting one or more methods to run to perform a generic
function, based on the class of its specialized arguments.

{\bit Generic Function\/}:

A function that has methods defined for it.  Ordinary functions have a
single definition; generic functions have a distributed definition.  The
implementation of an ordinary function is the same whenever the function
is called.  The implementation of a generic function varies from call to
call, depending on the classes of its arguments.

{\bit Instance\/}:  

Every object is an instance of some class.  The term instance is used to
describe the instance/class relationship of an object to its class.

{\bit Metaclass\/}: 

Each object has a class.  A class itself is an object which has a class.
The metaclass of an object is the class of the class of the object.

A metaclass itself is an object, which has a class.  The term metaclass
is used to refer to a class that is suitable for being the class of a
class.  An instance of a metaclass is a class.

{\bit Method\/}:

An object that describes how to perform a generic function for a given
set of arguments.  One or more methods are selected according to the
classes of the arguments to the generic function. 

{\bit Multi-method\/}:

The dispatching is based on two or more arguments to the generic
function (that is, on the class of several objects).

{\bit Object\/}:

Any Lisp datum, such as a number, a character, or an instance. 

{\bit Reader function\/}:

A generic function that enables you to read the value of a slot.
{\bf defclass} has an option for automatically generating accessor
functions for slots. 

{\bit SETF generic function\/}:

A {\bf setf} generic function is the function that is called when you
evaluate an expression such as:  ({\bf setf} ({\it g ...\/}) {\it
value\/}), where {\it g\/} is any generic function.   One example of
{\it g\/} is a slot accessor.

{\bit SETF method\/}:

A method for a {\bf setf} generic function.  

{\bit Slots\/}:

Slots define the structure of instances of the class, as do
defstruct slots.  When defining a new class, you specify the
slots of the class.  An {\bf :instance} slot is a place where you can
store data inside an instance.  This is the most commonly used
kind of slot, where each instance has an individual slot of the
same name.  A {\bf :class} slot is a place where you can store data
inside a class.  There is only one slot, whose value is shared by
all instances of the class.

{\bit Super-class\/}:

The super-classes of a class are those classes that are included
explicitly in the super-class list in the DEFCLASS form.  Each
super-class is an integral part of a class.  The class inherits
characteristics (such as slots) and behavior (such as methods)
from each of its super-classes.  This is the primary mechanism
for program modularity.  A typical mode of use is to define
several basic classes and combine them to achieve specialized
behavior.

\endSection%{Glossary}


\endSection

\endChapter
\bye